<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<ui:remove>
	Define los siguientes parámetros.
	propertyTitle: clave del mensaje que debe aparecer en el título de la columna.
	componentRender: Identificador de la tabla o de los componentes a refrescar tras las acciones de ordenamiento.
	explicitProperty: Propiedad que contiene el dato a mostrar en las filas de la columna
	fecha: Define si la columna muestra el dato formateado como fecha
	link: Define si se muestra la columna como un link para descarga de archivos
	record: Objeto con los datos requeridos para descargar el archivo
	columnStyleClass: Clase CSS asignada a la columna
	headerStyleClass: Clase CSS asignada al encabezado
	hideColumn: Booleano que indica si se debe ocultar la columna
</ui:remove>
<ui:composition>
	<rich:column sortBy="#{propertySort}"
		sortOrder="#{bean.sortOrders[propertySort]}"
		filterValue="#{bean.filterValues[propertyFilter]}"
		filterExpression="#{propertyFilter}"
		styleClass="#{hideColumn?'displayNone ':''}#{columnStyleClass}"
		headerClass="#{hideColumn?'displayNone ':''}#{headerStyleClass}">

		<f:facet name="header">
			<h:commandLink action="#{bean.toggleSort}">
				<h:outputLabel value="${msg[propertyTitle]}" />
				<h:graphicImage value="/resources/images/sort_uns.gif"
					rendered="#{bean.sortOrders[propertySort] eq 'unsorted'}" />
				<h:graphicImage value="/resources/images/sort_asc.gif"
					rendered="#{bean.sortOrders[propertySort] eq 'ascending'}" />
				<h:graphicImage value="/resources/images/sort_desc.gif"
					rendered="#{bean.sortOrders[propertySort] eq 'descending'}" />
				<f:setPropertyActionListener target="#{bean.sortProperty}"
					value="#{propertySort}" />
				<f:ajax execute="@this" render="#{componentRender}" />
			</h:commandLink>
			<br />
		</f:facet>
		<h:outputText
			value="#{explicitProperty eq null ? '' : fn:substring(explicitProperty,0,50)}"
			title="#{explicitProperty}"
			rendered="#{not fecha and not link and not currency}">
		</h:outputText>
		<h:outputText
			value="#{explicitProperty eq null ? '' : explicitProperty}"
			title="#{explicitProperty}" rendered="#{fecha}">
			<f:convertDateTime pattern="dd/MM/yyyy" />
		</h:outputText>

		<h:outputText rendered="#{currency}"
			value="#{explicitProperty eq null ? '' : explicitProperty}"
			title="#{explicitProperty}">
			<f:convertNumber type="currency" maxFractionDigits="2" 
				currencySymbol="$" />
			<f:attribute  name="currencyCode" value="#{explicitPropertyCurrencyType}"/>				
		</h:outputText>

		<h:outputText rendered="#{currency}"
			value=" #{explicitPropertyCurrencyType eq null ? '' : explicitPropertyCurrencyType}"
			title="#{explicitPropertyCurrencyType}"/>

		<h:commandLink action="#{applicationBean.download(record)}"
			value="#{explicitProperty eq null ? '' : fn:substring(explicitProperty,0,50)}"
			title="#{explicitProperty}" rendered="#{link}" immediate="true"
			render="@form" />
		<ui:remove>

		</ui:remove>
	</rich:column>
</ui:composition>
</html>